package org.example.chat.security.config;

import io.jsonwebtoken.SignatureAlgorithm;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.List;

/**
 * 配置类
 * @author cheval
 */
@Data
@ConfigurationProperties(prefix = "security")
public class SecurityConfigProperties {
    /** 登录白名单 */
    private List<String> ignoreUrls;
    /** 验证码过期时间, 默认60s */
    private Long captchaTimeout = 60L;
    private JWTConfigProperties jwtConfig = new JWTConfigProperties();

    @Data
    @ConfigurationProperties(prefix = "security.jwt")
    public class JWTConfigProperties {
        /** 对称加密秘钥 */
        private String secret = "secret";
        /** token过期时间，单位s， 这里设置一个很大的值，几乎不会过期 */
        private Long expirationTime = 100 * 365 * 24 * 60 * 60L;
        /** token 加密算法 */
        private SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
    }
}
